
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFrame;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Oscar
 */
public class Exploracion {
    
    public static void main (String[] args) throws IOException{
        Coordenada.setMaxNumber(8);
        Robot robot = new Robot();
        ControlRobot control = new ControlRobot(robot);
        File archivoRutas = new File("mapa.txt");
        //Se verifica que se haya creado correctamente
        if (archivoRutas.isFile()){
            try (BufferedReader lectorDeArchivo = new BufferedReader(new FileReader(archivoRutas))) {
                String linea = lectorDeArchivo.readLine();            
                String[] partesArista;            
                int fila = -1;
                while (linea != null){
                    //Se separa a la línea en vertice1, vertice2 y distancia.
                    partesArista = linea.split(" ");
                    //Se agregan los vértices y la arista entre ellos.
                    for (int i=-1; i<9; i++){
                        try{
                            Integer valor = new Integer(partesArista[i+1]);
                            robot.getMapa().setPlace(fila, i, valor.intValue());
                        }catch(Exception e){
                            
                        }
                    }
                    fila++;
                    linea = lectorDeArchivo.readLine();
                }
            }
            //Se aplica Floyd al grafo ya creado.
            System.out.println("Archivo hallado y mapa creado.");
            control.caminos();
            for (int[] posicion:robot.posiciones){
                for (int coord:posicion){
                    System.out.print(coord);
                }
                System.out.print("\n");
            }

            JFrame frame = new JFrame ("Grafo");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            GrafoGUI gui = new GrafoGUI(control);
            frame.getContentPane().add(gui);
            frame.pack();
            frame.setVisible(true);
        }else{
            System.out.println("No se ha hallado el archivo. Se iniciará con un grafo vacío.");
        }
    }
}
